<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Caso_uso_lst( $this );

	class Caso_uso_lst extends Lst
	{
	function Caso_uso_lst( &$oModule )
		{
			$this->Lst ( &$oModule );
		}

	function make()
		{
			// Crea el Objeto del Paginado
				$oPaginado = new Paging();
			// Obtiene los Parametros la Pagina
				$oncCasoUso			= new InputText ( "ncCasoUso");
				$ocdCasoUso			= new InputText ( "cdCasoUso");
				$ocDescripcion	= new InputText ( "cDescripcion");
		// Arma el Query
				$cSql = "SELECT CUs.ncCasoUso, CUs.cdCasoUso
										FROM stCasoUso as CUs";
		/// Arma los Joins Dinamicos
				//$cSql .= armarJoin(" JOIN stCasoUsoClase as CUC ON CUC.ncCasoUso = CUs.ncCasoUso AND CUC.ncClase = $ncClase", $ncClase);
			// Arma el Filtro de la Consulta
			$cSql .= armarFiltro( "CUs.ncCasoUso",$oncCasoUso->getValue(),
							"", armarSubFiltro("  ", "(CUs.cdCasoUso LIKE '" . $ocdCasoUso->getValue() . "%' )", $ocdCasoUso->getValue()),
							"", armarSubFiltro("  ", "(CUs.cdCasoUso LIKE '" . $ocDescripcion->getValue() . "%' )", $ocDescripcion->getValue()) );
			// Calcula la Cantidad de Total de Filas de la Consulta
				$oPaginado->setTotalItems ( $this->oModule->oDatabase->total($cSql) );
			// Arma el Orden de la Consulta
				if( $oPaginado->getOrderBy() )
				{
					$cSql .= " ORDER BY " . $oPaginado->getOrderBy();
				}
			// Ejecuta la Consulta
				if ( $this->oModule->oDatabase->query($cSql , $oPaginado->getFrom(), $oPaginado->getLength() ) )
				{
		?>
			<table class="listado" summary="Esta tabla contiene el listado de las clases que se utilizan en las acciones">
				<caption>Listado de Clases y Acciones</caption>
				<!-- Encabezado de la Tabla -->
				<thead>
					<tr>
						<th>Nro</th>
						<th>Nombre</th>
						<th>Acciones</th>
					</tr>
				</thead>
				<!-- Cuerpo de la Tabla -->
				<tbody>
					<? /// Ciclo por cada registro
						while ( $this->oModule->oDatabase->moveNext() )
						{
							// Arma el una cadena con la referencia al registro para pasarlo por get en las acciones por registro
							$cParametroRegistro = "ncCasoUso=" . $this->oModule->oDatabase->aFields["ncCasoUso"];
					?>
						<tr <?= interlineado( $nLinea, 'par', 'impar' ); ?> >
							<td><?= $this->oModule->oDatabase->aFields["ncCasoUso"]; ?></td>
							<td><?= $this->oModule->makeAction( $this->oModule->oDatabase->aFields['cdCasoUso'], VER_CASO_DE_USO, $cParametroRegistro ); ?></td>
							<td>
								<? // Acciones Por Registro
									echo $this->oModule->makeAction( '' , ELIMINAR_CASO_DE_USO, $cParametroRegistro );
									echo $this->oModule->makeAction( '' , MODIFICAR_CASO_DE_USO, $cParametroRegistro );
								?>
							</td>
						</tr>
					<?
						} // Fin del While por cada Registro de la Consulta
					?>
				</tbody>
			</table>
		<?
			} // Fin si hubo un error en la Consulta
		?>
		<div class="acciones">
			<span>
					<? // Acciones
						echo $this->oModule->makeAction( '' , AGREGAR_CASO_DE_USO, "");
					?>
			</span>
			<span>
				<?=  $oPaginado->makeButtons(); ?>
			</span >
			<span>
				<?=  $oPaginado->makeReferences(); ?>
			</span>
		</div>
<? 	}
	}
?>
